はじめに
正月休みを利用して以前に作成した「Raspberry Pi Zero で自律飛行ドローンを作るぞ」の続きをやることにしました。
まず考えたのが、これまでの機体はQAV210フレームを使って200gオーバだったため気軽に飛ばすことができなかったので200g未満のマイクロドローンへの乗り換えすることにしました。
マイクロドローンは何台かもっているBETAFPVの2セル機を流用することにします。 まずやることはフライトコントローラへの入力信号がPWMではなくSBUSなのでraspberry piからのPWM信号をSBUS信号に変換して動作するか確認してみました。
構成
parts | name |
---|---|
raspberry pi | raspberry pi zero w |
フライトコントローラ | BETAFPV F4 2S AIO Brushless No Rx |
距離センサ | VL53L0X |
ジャイロ加速度センサ | MPU-6050 |
PWMドライバ | PCA9685 |
PWM SBUS Converter | S.BUS Turn PWM+s.bus 16CH Multifunctional Converter SBUS-PPM-PWM |
コード
- GitHub上のコードを使用
- BETAFPV F4 2S AIO Brushless No Rx用の定義は以下の通り(aux2にarmを指定)
//BETAFPV F4 2S AIO Brushless No Rx
#define BETAFPV_F4_2S_AIO_THROTTLE 0
#define BETAFPV_F4_2S_AIO_ROLL 1
#define BETAFPV_F4_2S_AIO_PITCH 2
#define BETAFPV_F4_2S_AIO_YAW 3
#define BETAFPV_F4_2S_AIO_AUX2 4
#define BETAFPV_F4_2S_AIO_ARM 4 //aux2
#define BETAFPV_F4_2S_AIO_AUX3 5
#define BETAFPV_F4_2S_AIO_AUX4 6
#define BETAFPV_F4_2S_AIO_ARM_OFF 1000
#define BETAFPV_F4_2S_AIO_ARM_ON 1500
#define BETAFPV_F4_2S_AIO_NEUTRAL 1519
#define BETAFPV_F4_2S_AIO_NEUTRAL_THROTTLE 950
接続図
- コード変更を最小にするため既存と同じ構成にPWM-SBUS converterとフライトコントローラを接続
CleanFligthで動作確認
- armとThottleが想定通りの動作をしていることが波形で確認
- 距離センサ値と加速度センサ値は無視
現物
おわりに
- とりあえず確認できたので次は機体を作成してモータを回すところまでかな
2020/01/26追記: 機体作成と浮上は、ここで確認しました